The present invention relates in general to an improved data communication and networking system, and in particular, to an improved method and system for conveying data between logically distinct networks by distributing network layer routing functions to individual stations on a network.
Various technologies have evolved for communications and/or data transmission in computer networks, including Ethernet, token ring, fiber distributed data interface (FDDI), and asynchronous transfer mode (ATM). Data transmission within and between networks using such technologies are governed by various protocols, such as frame relay, X.25, integrated services digital network (ISDN), media access control (MAC) address protocol, and transmission control protocol/internet protocol (TCP/IP).
As with other forms of digital communications, data in computer networks is commonly transmitted in packets or frames, i.e., discrete bundles of data. Frames are comprised of various fields, such as header, address, data and control fields. The arrangement or format of these fields within a frame is protocol-dependent. An explanation of some frame formats commonly used in computer networks may be found in Internet Engineering Task Force (IETF) Request for Comments (RFC) 1490, which is incorporated herein by reference. However, it will be understood by those skilled in the art that RFC 1490 is not exhaustive of all frame formats currently in use.
A given communications or data transmission process in a network often requires delivery of multiple packets or frames of data from a source to a destination within the network. For example, retrieval of a file using file transfer protocol (FTP) will generally be accomplished using a large number of frames. Although relating to the same process (i.e., FTP), different frames may be transmitted via different paths within the network. As used herein, a data flow refers to a sequence of related frames sent from a particular source to a particular destination within the network.
Various devices exist for transmitting packets or frames of data within a network or between networks. A bridge or gateway passes frames of data from one network to another, the two networks typically being local area networks. Routers are an evolution beyond bridges, usually routing frames of data at a higher level protocol than is handled by bridges. The oldest routers were internet protocol (IP) routers, but other protocols may be routed including InterPacket Exchange (IPX) by Novell, Inc. and high performance routing (HPR) by International Business Machines Corporation. Like bridges, routers store and forward frames. However, a router, after storing a frame of data, looks into the internal data of the frame for higher protocol information regarding the ultimate destination of the frame. A router then consults an internal table of available paths to the ultimate destination and corresponding protocols supported by those paths, and makes a decision regarding how to route the frame to its ultimate destination.
A switch is a hardware device providing physical connection within or between different networks. Unlike bridges and routers, a switch typically forwards data without first storing the entire frame. The delays inherent in storing the entire frames before forwarding are thus eliminated. A switch transmits the data bits of the frame received from the source port directly to the destination port as soon as the destination is ascertained. Switches are often used as part of virtual circuits (VCs), or defined paths between a given source or destination. A virtual circuit may be either a switched virtual circuit (SVC) or a permanent virtual circuit (PVC). Switched virtual circuits are transient, set up for the benefit of a given process or data flow, and may result in different paths being used between the same source and destination for discrete processes. Permanent virtual circuits (PVCs) are defined paths between a source and destination using designated nodes in a predetermined sequence.
As switching is implemented in LAN environments, LAN connections have moved from shared access transport (SAT) sharing of media to connecting directly to switch ports. The LAN framing remains unchanged, but data flows attempt to pass or "cut through" the switch. Cut through avoids completely storing the frame before forwarding it, passing through the bits as soon as the destination port is known. Adaptive cut through is a variation which seeks to avoid wasting frames if the destination port is already busy by storing the frame in the switch until the destination is available.
Local area networks (LANs) are commonly connected with one another through one or more routers so that a host on one LAN can communicate with hosts on different LANs. A host is a personal computer, workstation or other network entity residing on a LAN and communicating with network entities outside of its own LAN through a router or bridge.
In the past, switching between logically distinct networks was performed at the router. In addition, it was performed at the network layer (layer 3) of the Open Systems Interconnection (OSI) reference model developed as a standard for data networks. This causes the following problems: (1) using routers to convey data frames is expensive because router manufacturers need to support most, if not all, network protocols including IP and IPX; (2) more processing is required since layer 3 routing is higher on the communications layered architecture; (3) because routers are the gateway to other networks, routing speed becomes a bottleneck; (4) layer 3 routing is relatively slow since it is typically implemented in software; and (5) with a purely bridged environment, there is a lack of isolation since a broadcast from a LAN station is conveyed everywhere.
Recently, LANs have undergone a transformation by the replacement of shared media LAN hubs with LAN switches which operate at the data link layer (layer 2) of the OSI model. However, even with LAN switches, routers are still needed to route packets between the logically distinct IP subnetworks.
Since existing layer 2 LAN switches do not support forwarding or routing of layer 3 protocols, there is a need to achieve cost-effective routing capabilities in a switched LAN network. The obvious solution is to add layer 3 routing capability to a LAN switch. This capability may be in the form of dedicated hardware that performs layer 3 routing functions, in addition to layer 2 switching functions, on each frame handled by the LAN switch. Alternatively, additional CPU processing capability within the LAN switch can perform the software-based layer 3 routing function on all layer 3 frames destined for a router layer 2 address (i.e., MAC address) within the LAN switch. The first solution is costly from the standpoint of both development and component costs. The second solution is less costly, but significantly lowers the frames per second throughput of a LAN switch. This lowered throughput is due to the processing required for layer 2 forwarding.